/*
 * @Author: zhangguliu1234 984556209@.com
 * @Date: 2023-12-25 09:30:27
 * @LastEditors: zhangguliu1234 984556209@.com
 * @LastEditTime: 2024-01-11 00:41:17
 * @FilePath: \BED\components\key.c
 * @Description:
 *
 * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved.
 */

#include <stdio.h>
#include "key.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "driver/gpio.h"
#include "delay.h"
#include "my_smartconfig.h"

#define gpio_num 26

void key_init(void)
{
    gpio_config_t key_gpio = {};
    key_gpio.pin_bit_mask = 1ULL << gpio_num;
    key_gpio.mode = GPIO_MODE_INPUT;
    gpio_config(&key_gpio);
}

int key_press(void)
{
    // 0--按下，1--松手
    if (gpio_get_level(GPIO_NUM_0) == 0)
    {
        vTaskDelay(5);
        if (gpio_get_level(GPIO_NUM_0) == 0)
        {
            while (!gpio_get_level(GPIO_NUM_0))
            {
            }
            return 0;
        }
    }
    return 1;
}

//
// void Key_WifiConfig_Task(void)
// {
//     static int count = 0;
//     while (1)
//     {
//         if ((gpio_get_level(GPIO_NUM_26) == 0) && count == 0) // 按下时第一次进入
//         {
//             vTaskDelay(5 / portTICK_PERIOD_MS); // 消抖
//         }
//         if (gpio_get_level(GPIO_NUM_26) == 0) // 按下
//         {
//             count++;
//         }
//         if (gpio_get_level(GPIO_NUM_26) == 1) // 松开
//         {
//             if (count > 20 || count == 20) // 长按时间达到一秒
//             {
//                 count = 0;
//                 printf("开始自动配网\n");
//                 // scWIFI_init();
//             }
//         }

//         vTaskDelay(50 / portTICK_PERIOD_MS); // 延时50毫秒
//     }
// }
